/**
 * 导出所有模块需要用到接口
 * 一级属性：模块名
 * 一级属性中的方法：当前模块需要用的接口
 * @type {Object}
 */
import ajax from './ajax';

let api = {
    education: {
        /**
         * 注销
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        logout(data, fn, errFn) {
            ajax.call(this, 'post', 'LogoutAction', data, fn, true, errFn);
        },
        /**
         * 登录名
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        getLoginAndNameAction(data, fn, errFn) {
            ajax.call(this, 'post', 'GetLoginAndNameAction', data, fn, true, errFn);
        },
        /**
         * 查看模板列表
         * @param {object} data 参数
         * @param {string} data.pageNum 页数
         * @param {string} data.identity 身份（0:student;1:teacher;2:chuangshiren）
         * @param {function} fn 成功回调
         */
        userList(data, fn, errFn) {
            ajax.call(this, 'post', 'UserList', data, fn, true, errFn);
        },
        /**
         * 查询问题、动态列表
         * @param {object} data 参数
         * @param {string} data.pageNum  当前页数
         * @param {string} data.pageSize   一页显示数量
         * @param {string} data.queryType  查询类型 0：问题 1：动态 2：问题+动态
         * @param {string} data.chargePrice   0代表免费 1代表收费
         * @param {string} data.questionStatus  0：已解决 1：未解决 不传代表全部
         * @param {string} data.questionType  问题类型
         * @param {string} data.searchContent  搜索内容（包含标题和内容中查询）
         * @param {string} data.userCreateId   所属用户
         * @param {function} fn 成功回调
         */
        queryQAList(data, fn, errFn) {
            ajax.call(this, 'get', 'QueryQAList', data, fn, true, errFn);
        },
        /**
         * 发布问题下单
         * @param {object} data 参数
         * @param {string} data.chargePrice 悬赏金额
         * @param {function} fn 成功回调
         */
        askQuestionOrder(data, fn, errFn) {
            ajax.call(this, 'post', 'AskQuestionOrder', data, fn, true, errFn);
        },
        /**
         * 打赏名单列表接口
         * @param {object} data 参数
         * @param {string} data.requestedId 问题或动态ID
         * @param {string} data.pageNum 页数
         * @param {function} fn 成功回调
         */
        rewardList(data, fn, errFn) {
            ajax.call(this, 'post', 'RewardList', data, fn, true, errFn);
        },
        /**
         * 关注&取关接口
         * @param {object} data 参数
         * @param {string} data.requestedUserId 当前登录用户ID
         * @param {string} data.followedUserId 被关注者ID
         * @param {function} fn 成功回调
         */
        followUser(data, fn, errFn) {
            ajax.call(this, 'post', 'FollowUser', data, fn, true, errFn);
        },
        /**
         * 查询个人信息街口
         * @param {object} data 参数
         * @param {string} data.userId  当前登录用户userID
         * @param {function} fn 成功回调
         */
        personalInfo(data, fn, errFn) {
            ajax.call(this, 'post', 'PersonalInfo', data, fn, true, errFn);
        },
        /**
         * 查询问题、动态详情
         * @param {object} data 参数
         * @param {string} data.type   章节ID
         * @param {function} fn 成功回调
         */
        queryQADetail(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryQADetail', data, fn, true, errFn);
        },
        /**
         * 设为最佳
         * @param {object} data 参数
         * @param {string} data.answerId   答案id
         * @param {function} fn 成功回调
         */
        bestAnswer(data, fn, errFn) {
            ajax.call(this, 'post', 'BestAnswer', data, fn, true, errFn);
        },
        /**
         * 回答问题
         * @param {object} data 参数
         * @param {string} data.questionId 问题id
         * @param {string} data.answerContent  回答内容
         * @param {function} fn 成功回调
         */
        insertAnswer(data, fn, errFn) {
            ajax.call(this, 'post', 'InsertAnswer', data, fn, true, errFn);
        },
        /**
         * 发布问题
         * @param {object} data 参数
         * @param {string} data.questionTitle 问题标题
         * @param {string} data.questionType 行业（常量）
         * @param {string} data.questionContent 问题内容
         * @param {string} data.chargePrice 赏金
         * @param {function} fn 成功回调
         */
        insertQuestion(data, fn, errs, errFn) {
            ajax.call(this, 'post', 'InsertQuestion', data, fn, true, errs, errFn);
        },
        /**
         * 查看模板题目（维护模板）
         * @param {object} data 参数
         * @param {string} data.templateId  模板ID
         * @param {function} fn 成功回调
         */
        queryQuestionList(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryQuestionList', data, fn, true, errFn);
        },
        /**
         * 教师语音列表、视频列表、动态列表、所有列表查询
         * @param {object} data 参数
         * @param {string} data.pageNum  当前页数
         * @param {string} data.pageSize  一页显示数量
         * @param {string} data.userId  教师id
         * @param {string} data.affairType   查询类型 1：语音 2：视频 3：动态 （不传代表查询所有种类）
         * @param {function} fn 成功回调
         */
        queryTeacherAffairList(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryTeacherAffairList', data, fn, true, errFn);
        },
        /**
         * 教师学生创始人列表街口
         * @param {object} data 参数
         * @param {string} data.reqUrl  请求URL（UserList）
         * @param {string} data.pageNum  pageNum
         * @param {string} data.identity  身份（0:student;1:teacher;2:chuangshiren）butianjiushiquanbuchazhao
         * @param {function} fn 成功回调
         */
        // userList(data, fn, errFn) {
        //     ajax.call(this, 'post', 'UserList', data, fn, true, errFn);
        // },
        /**
         * 粉丝列表接口
         * @param {object} data 参数
         * @param {string} data.userId 问卷id
         * @param {string} data.pageNum user账号
         * @param {string} data.pageSize  答案对象
         * @param {function} fn 成功回调
         */
        fans(data, fn, errFn) {
            ajax.call(this, 'post', 'Fans', data, fn, true, errFn);
        },
        /**
         * 打赏
         * @param {object} data 参数
         * @param {string} data.id 回答id或者动态id
         * @param {function} fn 成功回调
         */
        insertReward(data, fn, errFn) {
            ajax.call(this, 'post', 'InsertReward', data, fn, true, errFn);
        },
        /**
         * 关注列表接口
         * @param {object} data 参数
         * @param {string} data.pageNum
         * @param {function} fn 成功回调
         */
        followList(data, fn, errFn) {
            ajax.call(this, 'post', 'FollowList', data, fn, true, errFn);
        },
        /**
         * 我发布的问题
         * @param {object} data 参数
         * @param {string} data.pageNum
         * @param {function} fn 成功回调
         */
        queryMyQuestionList(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryMyQuestionList', data, fn, true, errFn);
        },
        /**
         * 我的回答
         * @param {object} data 参数
         * @param {string} data.pageNum
         * @param {function} fn 成功回调
         */
        queryMyAnswerList(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryMyAnswerList', data, fn, true, errFn);
        },
        /**
         * code
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        grantAuthorization(data, fn, errFn) {
            ajax.call(this, 'post', 'GrantAuthorization', data, fn, true, errFn);
        },
        /**
         * 修改个人信息
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        updatePersonalInfo(data, fn, errFn) {
            ajax.call(this, 'post', 'UpdatePersonalInfo', data, fn, true, errFn);
        },
        /**
         * 申请认证
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        identification(data, fn, errFn) {
            ajax.call(this, 'post', 'Identification', data, fn, true, errFn);
        },
        /**
         * 语音上传
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        uploadMedia(data, fn, errFn) {
            ajax.call(this, 'post', 'UploadMedia', data, fn, true, errFn);
        },
        /**
         * 发布动态接口
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        newAffair(data, fn, errFn) {
            ajax.call(this, 'post', 'NewAffair', data, fn, true, errFn);
        },
        /**
         * 去掉code发请求
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        validateAuthorization(data, fn, errFn) {
            ajax.call(this, 'post', 'ValidateAuthorization', data, fn, true, errFn);
        },
        /**
         * 动态支付
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        affairOrder(data, fn, errFn) {
            ajax.call(this, 'post', 'AffairOrder', data, fn, true, errFn);
        },
        /**
         * 获取当前登录用户
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        getUserId(data, fn, errFn) {
            ajax.call(this, 'post', 'GetUserId', data, fn, true, errFn);
        },
        /**
         * 打赏
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        rewardOrder(data, fn, errFn) {
            ajax.call(this, 'post', 'RewardOrder', data, fn, true, errFn);
        },
        /**
         * 我的动态
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        queryMyAffairList(data, fn, errFn) {
            ajax.call(this, 'post', 'QueryMyAffairList', data, fn, true, errFn);
        },
        /**
         * 评论
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        insertAffairComment(data, fn, errFn) {
            ajax.call(this, 'post', 'InsertAffairComment', data, fn, true, errFn);
        },
        /**
         * 查询评论列表
         * @param {object} data 参数
         * @param {function} fn 成功回调
         */
        selectAffairCommentList(data, fn, errFn) {
            ajax.call(this, 'post', 'SelectAffairCommentList', data, fn, true, errFn);
        }
    }
};
module.exports = api;